LinuC-2 - 202試験 - 2.08:ドメインネームサーバー - 2.08.3 セキュアなDNSサーバーの実現

Last Update : January 02 2021 16:07:31

     

a. chroot環境

chroot で動作させるようにした方がいいという事は、BINDだけに限らず多くのソフトウェアで共通することです。chroot とは、Linux システムファイルの中に、BINDだけが使うさらに小さなファイルシステムを仮想的に作ることです。BINDが使用するルートディレクトリを/var/named 以下に設定することで、万が一攻撃を受けて侵入された場合に、被害を/var/named の中だけに食い止めることができるようになります。chroot にすることで、/var/named より上位の階層へアクセスすることはできなくなりますので、よりセキュアな環境を構築することができます。

 まず、自分がchroot設定されているのどうかすらわからないという方は以下のコマンドを実行してください。赤文字で記したように -u named とだけしか表示されていなければ現在、chroot されていないことになります。

# ps aux | grep named
named 643 0.0 0.9 30268 2336 ? S Jan05 0:07 /usr/sbin/named -u named


■/etc/sysconfig/named の編集

 chrootを利用するには、/etc/sysyconfig/named の以下の行を編集します。コメントを削除し、ROOTDIRを有効にします。chrootする際のディレクトリはどこでも構いませんが、/var/named には最初からゾーンファイルが格納されているのでこちらのほうが楽でしょう。これによって、/var/named 配下が「/」ディレクトリになります。

ROOTDIR="/var/named"

■/etc/named.conf のコピー

 次に、/var/named 以下にディレクトリを作成します。作成したディレクトリ内にブートファイルとなるnamed.conf を移動します。/etc/named.conf は必要がなくなりますが、スタートアップ時にファイルの存在だけは確認するので削除してはいけません。混乱を避けるためにも、/etc 以下には、空のファイルとしてnamed.conf を作成しておきます。

# mkdir /var/named/etc # mkdir -p /var/named/var/run/named # mv /etc/named.conf /var/named/etc/ # touch /etc/named.conf  # 空のファイル


■rndc.key のコピー

 なお、rndc を使っている方は、named.conf の他にrndc.key やrndc.conf も/var/named/etc にコピーする必要があります。rndc.key って何?という方はここは飛ばして構いません。

# cp /etc/rndc.key /etc/rndc.conf /var/named/etc

 chroot した結果、/var/named がルートディレクトリとなるため、named.conf のdirectory "/var/named"のパスを以下のように修正します。なお、ロギング機能を使っている方は、ログファイルを格納する位置も、/var/named から見た相対パスで指定するようにしてください。

directory "/";

 ユーザーID及びグループIDが、named のプロセスとして/var/named にアクセスするため、ディレクトリの所有権を named に変更しておきます。

# chown -R named.named /var/named # chmod 700 /var/named # ls -l /var | grep named
drwx------ 5 named named 4096 1月 7 17:05 named

 以上でchroot の設定は終了です。named の再起動後、chrootできているか ps で確認してみましょう。以下のように、-t オプションを使って/var/named にchroot されていることがわかります。

# /etc/rc.d/init.d/named restart # ps aux | grep named
2952 ? S 18:21 0:00 /usr/sbin/named -u named -t /var/named

 各ファイルが置かれているディレクトリをまとめると以下表のようになります。

●各項目の意味
 パス 存在するファイル
 /etc ダミーのnamed.conf
 /var/named ゾーンデータファイル
 /var/named/etc named.conf 、rndc.key、rndc.conf
 /var/named/var/run/named named.pid

■トラブルシューティング

ログに /etc/rndc.key: permission denied と表示された場合は、rndc.key の所有者がroot になっている可能性があるのでchown で所有者を named に変更してください。また、うまく起動できない場合は、named.conf に記述されているパスが間違っている可能性があるのでもう一度確認してください。必ず、/var/named から見た相対位置 を指定するようにしてください。


b. DNSSECの設定


z. 出題範囲概要

概要 :
  • DNSサーバーをroot以外のユーザとしてchroot 環境で実行するよう設定できる。これには、DNSサーバー間で安全なデータ交換を行うことも含まれる。

詳細 :
  • chroot 環境で稼働するようBINDを設定する。
  • forwarders文を使用してBINDの構成を分割する。
    named.conf
  • DNSSEC および基本的なツールについて知っている。
    dnssec-keygen, dnssec-signzone, TSIG(Transaction Signature)
  • DANE および関連レコードについて知っている。

  [ 例題 ] 


         

    www.it-shikaku.jp